﻿function PreencherAtualizarCurso(text, id, selectoTxt, selectorId) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 20/06/2012
    /// @Description.....: Preenche os campos da tela de cadastro de curso com id e o texto para atualizar os mesmos
    /// </summary>
    $("input[id*='" + selectoTxt + "']").val(text).focusin();
    $("input[id*='" + selectorId + "']").val(id);
    return false;
}

function OpenModalSucesso(msg, url) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Description.....: Abre uma modal com descrição de sucesso
    /// </summary>
    /// <param name="msg" type="String">Menssagem a ser exibida</param>
    /// <param name="url" type="String">Url a ser redirecionado no caso de operações de sucesso</param>

    // adiciona valor no html
    $("#divMsgErro").html(msg);
    // abre a modal com o erro
    $("div[id*='divError']").dialog({
        modal: true,
        height: 200,
        width: 450,
        resizable: false,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
                window.location.href = url;
            }
        }
    });
}
function OpenModalErro(erro) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Description.....: Abre modal com mensagens de erro
    /// </summary>
    /// <param name="erro" type="String">Mensagem de erro a ser exibida</param>

    // modifica o html onde será apresentado o erro
    $("#divMsgErro").html(erro);
    // abre a modal
    $("div[id*='divError']").dialog({
        modal: true,
        height: 200,
        width: 450,
        resizable: false,
        buttons: {
            Ok: function () {
                $(this).dialog("close");
            }
        }
    });
}

function SelectItem(modalId, txtTextId, text, txtValueId, value) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Utilizado para selecionar um iten na grid de atividades quando o usuário seleciona uma palestra que irá participar
    /// </sumary>
    /// <param name="modalId" type="String">Id da div que é modal</param>
    /// <param name="txtTextId" type="String">selector do input que receberá o texto</param>
    /// <param name="text" type="String">Texto a ser exibido geralmente irá ser o nome da palestra</param>
    /// <param name="txtValueId" type="String">Id da palestra selecionado</param>
    /// <param name="value" type="String">Id da palestra selecionada</param>

    // fecha a modal
    $(modalId).dialog("close");
    // adicona o texto onde irá aparecer a descrição da palestra
    $(txtTextId).val(text);
    // adiciona o texto no txt que vai o id do curso
    $(txtValueId).val(value);
    // coloca o focus na campo que aparece o id
    $(txtTextId).focus();
    return false;
}

function _OpenGetPalestra(divModalId, txtTextId, txtValueId) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Abre a modal para seleção de uma palestra
    /// </summary>
    /// <param name="divModalId" type="String">Id da div que abrirá como modal</param>
    /// <param name="txtTextId" type="String">Selector do input que receberá o nome da palestra</param>
    /// <param name="txtValueId" type="String">Selector do campo que irá receber o id da palestra</param>

    // realiza a chamada ajax para obter o html da div de seleção
    $.ajax({
        url: 'Default.aspx/GetCursos',
        type: 'post',
        data: "{'modalId': '" + divModalId + "', 'txtTextId': '" + txtTextId + "', 'txtValueId': '" + txtValueId + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (e) {
            $("div[id*='divConteudo']").html(e.d);
            $("div[id*='divModal']").dialog({
                modal: true,
                height: 700,
                width: 890
            });
        }
    });
}

function _AddCurso(_id, txtText, txtValue) {
    /// <summary>  
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Adiciona um curso no array de cursos feito em javascript utilizado para manter os arrays na memória do browser e só salvar os
    //      mesmos quando clicar-se em salvar  
    /// </summary>

    // pega o nome da palestra
    nome = $(txtText).val();
    // pega o id da palestra
    id = $(txtValue).val();
    // valida dados para jogar valores default
    if (_id != null)
        id = _id;
    if (nome == undefined)
        nome = "";
    if (id == undefined || id == null || id == "")
        id = 0;

    // faz a chamada ajax
    $.ajax({
        url: 'Default.aspx/AddCurso',
        type: 'post',
        data: "{'nome':'" + nome + "', 'id':" + id + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (e) {
            // mostra os erros caso tenha algum
            if (e.d.Error != undefined && e.d.Error != null && e.d.Error != "") {
                OpenModalErro(e.d.Error);
                return;
            }
            // adiciona o iten no array
            internalAdd(id);
            // atualiza a div com os dados da grid de palestras adicionadas
            $("div[id*='dvPalestras']").html(e.d.HtmlString);
        }
    });
}
function RemoveCurso(_id) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Remove um item do array de palestras assim quando o usuário clicar em salvar ele irá saber quais itens
    ///     tem que se deletar
    /// </summary>
    /// <param name="_id" type="Int">Id do item a ser excluido</param>

    // obtem o id do usuário
    userId = $("input[name*='userId']").val();

    // valida os dados
    if (userId == '' || userId == null)
        userId = 0;
    id = 0;
    if (_id != null && _id != '')
        id = _id;
    if (nome == undefined)
        nome = "";
    if (id == undefined || id == null || id == "")
        id = 0;
    // faz chamada ajax para atualizar a grid e a lista
    $.ajax({
        url: 'Default.aspx/RemoveCurso',
        type: 'post',
        data: "{'id':" + id + ", 'userId': " + userId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (e) {
            // mostra o erro em caso do mesmo ter ocorrido
            if (e.d.Error != undefined && e.d.Error != null && e.d.Error != "") {
                OpenModalErro(e.d.Error);
                return;
            }
            // chama método para remover item do array
            internalRemove(id);
            // atualiza o html da div com os dados da grid
            $("div[id*='dvPalestras']").html(e.d.HtmlString);
        }
    });
}

function internalRemove(id) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Adiciona o item do array e refaz os itens no input que armazena as palestras a serem removidas
    /// </summary>
    /// <param name="id" type="Int">Id do curso a ser removido</param>

    // adiciona item no array
    excluirItens.push(id);
    str = '';
    // percorre o array
    for (var i in excluirItens) {
        // monta o texto separando por ;
        str += excluirItens[i] + ';'
    }
    // pega substring e elemina o ultimo ;
    str = str.substring(0, str.length - 1)
    // adiciona os itens a serem excluidos no input que armazena o valor
    $("input[name*='excluirItens']").val(str);
}

function internalAdd(id) {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Remove o item do array e refaz os itens no input que armazena as palestras a serem removidas
    /// </summary>
    /// <param name="id" type="Int">Id do curso a ser removido</param>

    str = '';
    // percoree o array em busca do item a ser removido
    for (var i = 0; i < excluirItens.length; i++) {
        if (excluirItens[i] == id) {
            // remove o item
            excluirItens.splice(i, 1);
            break;
        }
    }
    // remota a string para ser armazenada no input para remoção dos itens
    for (var i in excluirItens) {
        str += excluirItens[i] + ';'
    }
    // remove o ultimo ;
    str = str.substring(0, str.length - 1)
    // adiciona o valor no input
    $("input[name*='excluirItens']").val(str);
}

/*
*  @Descrição........: Faz logout do sistema
*/
function Deslogar() {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Description.....: Faz logout do login
    /// </summary>
    // faz chamada ajax
    $.ajax({
        //url: '/Administrativo/Admin.aspx/Deslogar',
        url: eS.UrlPadrao + 'Views/Administrativo/Admin.aspx/Deslogar',
        type: 'post',
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        data: '{}',
        success: function (e) {
            // se ouver erro mostra na tela
            if (e.d.Error != undefined && e.d.Error != '' && e.d.Error != null)
                OpenModalErro(e.d.Error);
            else {
                // muda o status no link do usuário
                $(".loginDisplay").html(e.d.HtmlString);
                //window.location.href = "/Administrativo/Admin.aspx";
                window.location.href = "/";
            }
        },
        error: function (e) {
            // mostra erro
            OpenModalErro(e);
        }
    });
}

/*
*  @Descrição........: Abre a modal de login
*/
function OpenLogin() {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Description.....: Abre a modal de login
    /// </summary>
    // adiciona o evento no botão para logar
    $("input[name='btnSenha']").click(function () {
        Logar();
    });
    // pega a posição do link de logar
    off = $(".loginDisplay a").offset();
    // abre a modal de login
    $("#dvLogin").dialog({
        modal: false,
        resizable: false,
        height: 300,
        width: 480,
        draggable: false
    });
    // posiciona a modal junto ao link
    $(".ui-dialog").offset({ top: off.top + 20, left: off.left - 435 });
}

/*
*  @Descrição........: Faz login nas páginas
*/
function Logar() {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Description.....: Loga o usuário
    /// </summary>
    // pega o login
    login = $("input[name^='Login']").val();
    // pega a senha
    senha = $("input[name^='Senha']").val();
    // faz a chamada ajax
    $.ajax({
        //url: '/Administrativo/Admin.aspx/Logar',
        url: eS.UrlPadrao +  'Views/Administrativo/Admin.aspx/Logar',
        type: 'post',
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        data: '{"login" : "' + login + '", "senha" : "' + senha + '"}',
        success: function (e) {
            // se ouver erro mostra na tela
            if (e.d.Error != '' && e.d.Error != null)
                OpenModalErro(e.d.Error);
            else {
                // muda o status no link
                $(".loginDisplay").html(e.d.HtmlString);
                // fecha a modal
                $("#dvLogin").dialog("close");
                if (loginCall != undefined)
                    loginCall.call(this);
            }
        },
        error: function (e) {
            // mostra o erro
            OpenModalErro(e);
        }
    });
}

function ConfigureObjects() {
    /// <summary>
    /// @Autor...........: Edney Batista da Silva
    /// @Data............: 17/06/2012
    /// @Descriptio......: Configura os inputs nas páginas
    /// </summary>

    // inicia o jquery
    $(function () {
        // obtém todos os elementos calendários
        $("input[calendar]").each(function (campo) {
            // seta o calendário
            SetCalendar(this);
        });

        // obtém os elementos que tem mascará
//        $("input[mask]").each(function (campo) {
//            reverse = $(this).attr('reverse');
//            typeValue = 'fixed';
//            if (reverse == 'true')
//                typeValue = 'reverse';
//            // seta as mascaras

//            SetMask({ objeto: this, autoTab: false, type: typeValue });
//        });

        // obtém os elementos com mascará para horas
        $("input[clock]").each(function (campo) {
            // obtém o valor do itém
            var clock = $(this).attr("clock");
            // faz verificação
            if (clock != "true")
                return;
            // cria objeto do tipo mask
            objMask = {
                objeto: this,
                autoTab: false,
                mask: '99:99'
            }
            // seta a mascará
            SetMask(objMask, objMask.mask);
        });
    });
    function SetCalendar($object) {
        /// <summary>
        /// @Autor...........: Edney Batista da Silva
        /// @Data............: 17/06/2012
        /// @Descriptio......: Cria um datepicker no input fornecido
        /// </summary>
        /// <param name="$object" type="jQueryObject">Objeto jquery que irá receber o datepicker</param>

        // verifica se precisa desabilitar o campo
        dis = $($object).attr("disabled");
        if (dis == true)
            return;
        // obtém o ano para formatar a data
        ano = (new Date().getFullYear()).toString();
        // cria o objeto datepicker no objeto jQuery         
        $($object).datepicker({
            showOn: "button",
            buttonImage: eS.UrlPadrao + "Recursos/i/calendar.png",
            buttonImageOnly: true,
            altFormat: "dd/MM/yy",
            changeYear: true,
            yearRange: '1970:' + ano
        });
    }

    function SetMask($objetoMask, mask) {
        /// <summary>
        /// @Autor...........: Edney Batista da Silva
        /// @Data............: 17/06/2012
        /// @Descriptio......: Seta mascara em um campo
        /// </summary>

        // valida informações
        if (mask != undefined)
            $objetoMask.mask = mask;
        else
            $objetoMask.mask = $($objetoMask.objeto).attr("mask")
        // seta a mascara
        $($objetoMask.objeto).setMask({ mask: $objetoMask.mask, autoTab: $objetoMask.autoTab, type: $objetoMask.type });
    }
}